iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0
生成式 AI

生成式AI的奇妙旅程:從ChatGPT到個人化應用系列 第 3

Day 3|Transformer 架構核心(Attention is All You Need)

  • 分享至 

  • xImage
  •  

引言:我們正站在 AI 巨人的肩膀上

你或許每天都在使用 ChatGPTGoogle Gemini 或是其他各種強大的大型語言模型(LLMs)。這些模型能寫詩、編程、翻譯、甚至是繪製圖像,徹底改變了我們與數位世界的互動方式。Ashish Vaswani 稱 ChatGPT 為「AI 發展上的明確里程碑」。

但是,你有沒有想過,這些強大 AI 的「大腦」—— 這個能夠理解上下文、處理長篇序列,甚至能實現所謂「上下文學習」(In-Context Learning, ICL)能力的底層機制,究竟是什麼?

答案就是 Transformer 架構。

這個劃時代的架構,源自於 Google 團隊在 2017 年發表的一篇奠基性研究論文:《Attention Is All You Need》。這篇論文不只為我們帶來了 Transformer,也確立了現今所有 LLMs 的基本骨幹。

Transformer 的出現被認為是人工智慧和自然語言處理(NLP)領域的典範轉移。它讓過去的主流架構,如循環神經網路(RNNs)和長短期記憶網路(LSTMs),在語言處理模型中變得幾乎過時。

今天,我們就一起深入探討這個顛覆 RNN/CNN 時代、徹底改變深度學習世界的 Transformer 核心思想:「注意力機制」是如何做到這一切的。


核心概念拆解:注意力機制與 Transformer 的三大支柱

Transformer 架構的成功,在於它徹底拋棄了循環(Recurrence)和卷積(Convolution)的傳統方法,轉而完全依賴注意力機制來捕捉輸入與輸出之間的全局依賴關係。這帶來了兩個革命性的優勢:更高的並行性和更快的訓練速度。

我們將核心概念分為三個關鍵部分來討論:自注意力多頭機制位置編碼

1. 自注意力機制 (Self-Attention)

注意力機制(Attention Mechanism)的靈感來源於人類選擇性地關注最相關細節的能力。

1.1 定義與原理:$Q, K, V$ 模型

注意力功能可以描述為將查詢(Query)和一組鍵(Key)-值(Value)對映射到一個輸出。輸出是這些值(Value)的加權和,其中分配給每個值的權重,是透過查詢與對應鍵之間的相容性函數計算得出的。

Transformer 模型採用的具體注意力機制稱為「縮放點積注意力」(Scaled Dot-Product Attention)。

  • 輸入轉換:對於輸入序列中的每個標記(token),模型會學習三個權重矩陣 $W_Q$、 $W_K$ 和 $W_V$。通過將輸入嵌入(Input Embedding)$x_i$ 與這些矩陣相乘,我們得到查詢向量 ($q_i = x_i W_Q$)、鍵向量 ($k_i = x_i W_K$) 和值向量 ($v_i = x_i W_V$)。
  • 計算注意力權重:查詢向量 $Q$ 和鍵向量 $K$ 的點積(Dot-Product)用於計算注意力分數。
    • 縮放(Scaling):為了穩定梯度,這個點積結果會除以鍵向量維度 $d_k$ 的平方根 $\sqrt{d_k}$。
    • 正規化(Normalization):接著,應用 $softmax$ 函數將這些分數正規化,生成介於 0 到 1 之間的注意力權重
  • 最終輸出:輸出是注意力權重矩陣與值向量 $V$ 矩陣相乘的結果。

公式表示
$$\text{Attention}(Q,K, V ) = \text{softmax}\left(\frac{QK^{\mathrm{T}}}{\sqrt{d_{k}}}\right)V$$

1.2 技術優勢:實現並行化

在 Transformer 中,我們使用的是「自注意力」(Self-attention)機制。

  • 定義查詢 ($Q$)、 ($K$) 和 ($V$) 都來自同一個來源(即輸入序列的上一個層次的輸出)。
  • 優勢:由於 $Q, K, V$ 來自同一輸入序列,模型可以同時處理序列中的所有標記,從而完全消除對 RNN 固有的序列依賴性,實現大規模並行計算。這種機制能捕捉句子中任意兩個單詞之間的關係,而不僅限於相鄰的詞。
  • 效率比較:對於一個長度為 $n$ 的序列,RNN 需要 $O(n)$ 次順序操作,而自注意力層只需 $O(1)$ 次順序操作即可連接所有位置。在序列長度 $n$ 小於表示維度 $d$ 時,自注意力層比循環層更快。

1.3 生活例子:上下文的捕捉

想像我們在處理一句話:「銀行排了長長的隊伍,我急著去存錢。」

  • 當模型處理「銀行」這個詞時,它需要判斷這是指「河岸」(River Bank)還是「金融機構」(Financial Bank)。
  • 透過自注意力機制,模型可以讓「銀行」的 $Q$ 去尋找序列中所有詞的 $K$。
  • 如果模型發現「存錢」這個詞與「銀行」的 $Q$ 得到了很高的注意力權重(高相關性)。
  • 那麼,在生成「銀行」的上下文嵌入向量時,「存錢」的值向量就會被賦予更高的權重。這樣,模型就知道這個「銀行」是金融機構,從而更好地理解語義。

2. 多頭注意力機制 (Multi-Head Attention)

2.1 定義與功能

如果只使用單個注意力機制,它可能成為模型中的瓶頸,因為它只能捕捉一種「相似性」關係。

  • 定義:多頭注意力(Multi-Head Attention, MHSA)是將 $H$ 組縮放點積注意力並行運行。
  • 原理:它將原始 $D_{model}$ 維度的查詢、鍵和值投影到 $H$ 個不同的、較小的維度空間 ($d_k = d_v = D_{model}/H$)。
  • 功能:每個「」(Head)都會學習捕捉不同子空間中的關係。例如,一個頭可能專注於主語和動詞的關係,另一個頭則可能專注於語義上的指代關係。這使得輸入嵌入可以從更多樣和多元的角度得到更新。
  • 輸出整合:所有 $H$ 個注意力頭的輸出會被拼接(Concatenate)起來,然後通過一個最終的線性變換矩陣 $W^O$ 投影回原來的 $D_{model}$ 維度。
  • 計算成本:由於每個頭的維度降低了,多頭注意力機制總體的計算成本與具有完整維度的單頭注意力相似。

3. 位置編碼 (Positional Encoding)

3.1 挑戰與必要性

Transformer 模型的核心優勢是並行化,但這也帶來了一個巨大的挑戰:資訊的順序被丟棄了

  • 傳統的 RNN 通過按順序處理標記來內建(inbuilt)處理順序資訊的機制。但 Transformer 卻是將整個序列當作一個集合(set)來處理,如果我們打亂輸入句子的順序,其輸出(在排列之後)仍然是相同的,這對於理解語言的語義是致命的。
  • 例如,「草食動物吃植物」和「植物吃草食動物」在語義上是完全不同的,但如果沒有順序資訊,Transformer 會將它們視為(排列後)相同的輸入。

3.2 解決方案:正弦與餘弦函數

為了將順序知識注入模型,我們需要明確地添加位置編碼(Positional Encoding, PE)。

  • 方法:位置編碼是一個與輸入嵌入具有相同維度 $d_{model}$ 的向量 $P$。它與詞嵌入相加後,作為 Transformer 的輸入。
  • 原始設計 (《Attention Is All You Need》):該論文採用了固定絕對正弦位置編碼。對於每個位置索引 $pos$ 和嵌入維度的索引 $i$,其值由不同頻率的正弦和餘弦函數生成。
  • 優勢:這種正弦編碼的設計允許模型學習關注相對位置,因為任意兩個正弦向量的線性組合都可以編碼相對位移。
  • 其他變體:研究也探索了可學習的位置嵌入(Learned Positional Embeddings),結果顯示其性能與固定正弦編碼幾乎相同。其他更先進的方案,如相對位置編碼(Relative PE) 或帶有線性偏差的注意力(ALiBi),則旨在更好地處理長序列和外推(Extrapolation)能力。

深入探討:從架構類型到實際挑戰

1. Transformer 的三種主流架構類型

雖然原始論文提出的是「編碼器-解碼器」(Encoder-Decoder)結構,但在實際的生成式 AI 發展中,這三種架構各有專精:

架構類型 核心組成 主要機制 典型應用場景 著名模型
Encoder-Only (純編碼器) 堆疊的編碼器層 雙向自注意力(無遮罩) 理解任務:文本分類、情感分析、命名實體識別、序列標註。 BERT、RoBERTa
Decoder-Only (純解碼器) 堆疊的解碼器層 遮罩自注意力(單向/自迴歸) 生成任務:文章續寫、故事創作、對話系統、程式碼生成。 GPT 系列 (GPT-3, ChatGPT)、LLaMA
Encoder-Decoder (編碼器-解碼器) 編碼器層 + 解碼器層 交叉注意力(Decoder 關注 Encoder 輸出) 序列轉換任務:機器翻譯、文本摘要、問答生成。 T5、BART

在生成式 AI 領域,Decoder-Only 模型展現出驚人的能力。例如,GPT 系列模型儘管只接受了「預測下一個詞」(語言模型)的訓練,卻能隱含地學會總結、翻譯、問答等複雜技能,這被稱為零樣本(Zero-shot)或少樣本學習(Few-shot)能力。

2. 應用場景的多模態擴展

Transformer 的靈活性使其成為了一種「通用模型」(universal model)的追尋目標。它不僅在 NLP 中佔據主導地位,還擴展到了多種模態。

  • 自然語言處理 (NLP):機器翻譯、文本生成、情感分析、問答系統、文本摘要。BERT 在 2018 年被開發出來,旨在解決 11 種以上的常見語言任務。
  • 電腦視覺 (CV)視覺 Transformer (ViT) 將圖像切分成小的「塊」(patch),然後將每個塊視為一個「詞」(token)來處理。應用包括圖像分類、物件偵測 和圖像生成。
  • 音訊與多模態:用於語音識別、音樂生成;以及處理跨模態任務,如文字到圖像的生成(DALL-E) 和視覺問答(VQA)。

3. 模型限制、挑戰與優化方向

Transformer 架構雖然強大,但在實際應用中仍面臨一些挑戰,這些挑戰也成為了後續研究的重點。

挑戰一:計算複雜度與長序列瓶頸

標準的自注意力機制存在一個固有的問題:計算複雜度與序列長度 $T$ 成平方關係 $O(T^2 \cdot D)$。

  • 瓶頸所在:當輸入序列 $T$ 變得非常長時(例如長文件或高解析度圖像),自注意力機制會成為運算瓶頸。此外,它還需要儲存一個 $T \times T$ 的注意力分佈矩陣。
  • 解決方案:稀疏注意力:為了解決長序列問題,研究人員提出了稀疏注意力(Sparse Attention)。這些方法旨在減少每個標記需要關注的鍵值對的數量。
    • 例如,Band Attention(限制在鄰近範圍內)、Global Attention(加入全局節點作為資訊傳播中心)、Dilated Attention(擴大感受野但不增加計算量),以及結合這些策略的 LongformerBigBird。這些變體將複雜度降低到 $O(T \cdot D)$ 或 $O(T \cdot \log T)$。

挑戰二:對數據量的依賴(歸納偏誤問題)

Transformer 本身是「通用」的,它對輸入數據的結構性偏差(Structural Bias)假設很少。

  • 問題:由於缺乏像 CNN 那樣對「局部性」(Locality)的內建歸納偏誤,Transformer 在小規模數據上訓練時容易過度擬合(overfit)。
  • 數據依賴性:實驗證明,Transformer 的表現只有在訓練數據量達到一定規模(例如 ImageNet 規模以上)時,才會開始超越 CNN。
  • 混合架構:因此,許多現代模型採用混合架構,結合了 CNN 在局部特徵提取上的高效性和 Transformer 在全局上下文理解上的優勢。例如,Lite Transformer 和 Conformer。

挑戰三:多頭機制的內部運作奧秘

多頭注意力機制雖然強大,但其內部工作原理一直充滿「黑箱」性質。

  • 內部機制探索:最近對 Transformer 進行上下文學習(ICL)的研究揭示了一些有趣的現象。例如,在處理稀疏線性迴歸(Sparse Linear Regression)任務時,訓練後的 Transformer 在不同層中對多頭機制的利用模式是不同的。
  • 「預處理-優化」假說:有研究發現,在第一層注意力層中,所有頭部似乎都同等重要;但在後續的層次中,模型則主要依賴單一的頭部
  • 推論:這導致了一個「預處理-優化」(preprocess-then-optimize)的假說。即 Transformer 使用第一層的多頭機制來對上下文範例進行數據預處理(例如,通過計算相關性進行特徵加權);而後續的層次則使用單頭機制來執行簡單的迭代優化算法(如梯度下降)。這種機制能幫助模型實現比傳統梯度下降或 Ridge 迴歸更低的誤差風險。

4. 位置編碼的演進與外推能力

除了基本的正弦編碼,位置編碼的設計也在不斷演進,特別是為了應對模型在訓練長度之外序列上的外推(Extrapolation)能力。

  • 絕對位置 vs. 相對位置:原始的正弦編碼和可學習編碼屬於絕對位置表示。後來的發展,如 T5 和 Transformer-XL,開始引入相對位置表示,專注於標記對之間的距離關係。
  • ALiBi (Attention with Linear Biases):這種方案不再向嵌入中添加位置向量,而是直接在注意力分數(Attention Logits)中加入一個與負距離成比例的偏差項 $b(i, j) = -\alpha|i-j|$。
    • 外推優勢:ALiBi 的線性偏差設計確保了,即使序列長度超過訓練時見過的長度 ($N_{max}$),偏差項仍然有明確定義,從而實現優雅的外推能力。這使得模型可以更自然地關注遠距離序列中的局部上下文,防止注意力權重被稀釋。

結語:從「一切皆Attention」到未來的通用 AI

Transformer 架構無疑是過去十年 AI 領域最重大的發明之一。它以「Attention Is All You Need」為核心宣言,拋棄了長期以來主導序列建模的 RNN 和 CNN,為我們打開了大規模並行訓練和超大型模型(如 GPT-4)的大門。

從工程師的角度來看,Transformer 的成功不僅是理論的勝利,更是實用性的飛躍。它讓處理自然語言這類順序數據的計算效率極大提升,這才使得我們能用 TPUs 或 GPUs 在數天內訓練出數十億參數的模型。

當然,Transformer 的旅程還沒有結束。我們看到了其在長序列上的複雜度挑戰,以及在小數據集上訓練時對歸納偏誤的渴望。這也是為什麼研究社群仍在積極探索「XXformer」的各種變體,試圖在速度、準確性和數據依賴性之間找到更好的平衡。

有人說,Transformer 的最終目標是成為一種通用模型(universal model),一個能整合所有模態(文本、圖像、音訊、程式碼)並像人類大腦一樣交換資訊的單一模型。

或許有一天,「Attention Is All You Need」會被新的架構所取代,但它所開創的並行化和上下文理解的時代,將永遠是生成式 AI 發展史上最精彩的一章。

所以,下次當你使用 ChatGPT 寫程式碼或進行翻譯時,別忘了這一切都源於 2017 年那篇簡潔而優雅的論文。讓我們繼續享受這場 AI 盛宴,並期待下一個劃時代的技術出現吧!


上一篇
Day 2|AI 發展脈絡:從規則式到深度學習
下一篇
Day 4|Self-Attention 如何運作(Q/K/V 概念)
系列文
生成式AI的奇妙旅程:從ChatGPT到個人化應用30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言